home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / rfc / rfcxxxx / rfc1633 < prev    next >
Text File  |  1995-07-26  |  90KB  |  1,852 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          R. Braden
  8. Request for Comments: 1633                                           ISI
  9. Category: Informational                                         D. Clark
  10.                                                                      MIT
  11.                                                               S. Shenker
  12.                                                               Xerox PARC
  13.                                                                June 1994
  14.  
  15.  
  16.      Integrated Services in the Internet Architecture: an Overview
  17.  
  18. Status of this Memo
  19.  
  20.    This memo provides information for the Internet community.  This memo
  21.    does not specify an Internet standard of any kind.  Distribution of
  22.    this memo is unlimited.
  23.  
  24. Abstract
  25.  
  26.    This memo discusses a proposed extension to the Internet architecture
  27.    and protocols to provide integrated services, i.e., to support real-
  28.    time as well as the current non-real-time service of IP.  This
  29.    extension is necessary to meet the growing need for real-time service
  30.    for a variety of new applications, including teleconferencing, remote
  31.    seminars, telescience, and distributed simulation.
  32.  
  33.    This memo represents the direct product of recent work by Dave Clark,
  34.    Scott Shenker, Lixia Zhang, Deborah Estrin, Sugih Jamin, John
  35.    Wroclawski, Shai Herzog, and Bob Braden, and indirectly draws upon
  36.    the work of many others.
  37.  
  38. Table of Contents
  39.  
  40.    1. Introduction ...................................................2
  41.    2. Elements of the Architecture ...................................3
  42.       2.1 Integrated Services Model ..................................3
  43.       2.2 Reference Implementation Framework .........................6
  44.    3. Integrated Services Model ......................................11
  45.       3.1 Quality of Service Requirements ............................12
  46.       3.2 Resource-Sharing Requirements and Service Models ...........16
  47.       3.3 Packet Dropping ............................................18
  48.       3.4 Usage Feedback .............................................19
  49.       3.5 Reservation Model ..........................................19
  50.    4. Traffic Control Mechanisms .....................................20
  51.       4.1 Basic Functions ............................................20
  52.       4.2 Applying the Mechanisms ....................................23
  53.       4.3 An example .................................................24
  54.    5. Reservation Setup Protocol .....................................25
  55.  
  56.  
  57.  
  58. Braden, Clark & Shenker                                         [Page 1]
  59.  
  60. RFC 1633            Integrated Services Architecture           June 1994
  61.  
  62.  
  63.       5.1 RSVP Overview ..............................................25
  64.       5.2 Routing and Reservations ...................................28
  65.    6. Acknowledgments ................................................30
  66.    References ........................................................31
  67.    Security Considerations ...........................................32
  68.    Authors' Addresses ................................................33
  69.  
  70. 1. Introduction
  71.  
  72.    The multicasts of IETF meetings across the Internet have formed a
  73.    large-scale experiment in sending digitized voice and video through a
  74.    packet-switched infrastructure.  These highly-visible experiments
  75.    have depended upon three enabling technologies.  (1) Many modern
  76.    workstations now come equipped with built-in multimedia hardware,
  77.    including audio codecs and video frame-grabbers, and the necessary
  78.    video gear is now inexpensive.  (2) IP multicasting, which is not yet
  79.    generally available in commercial routers, is being provided by the
  80.    MBONE, a temporary "multicast backbone".  (3) Highly-sophisticated
  81.    digital audio and video applications have been developed.
  82.  
  83.    These experiments also showed that an important technical element is
  84.    still missing: real-time applications often do not work well across
  85.    the Internet because of variable queueing delays and congestion
  86.    losses.  The Internet, as originally conceived, offers only a very
  87.    simple quality of service (QoS), point-to-point best-effort data
  88.    delivery.  Before real-time applications such as remote video,
  89.    multimedia conferencing, visualization, and virtual reality can be
  90.    broadly used, the Internet infrastructure must be modified to support
  91.    real-time QoS, which provides some control over end-to-end packet
  92.    delays.  This extension must be designed from the beginning for
  93.    multicasting; simply generalizing from the unicast (point-to-point)
  94.    case does not work.
  95.  
  96.    Real-time QoS is not the only issue for a next generation of traffic
  97.    management in the Internet.  Network operators are requesting the
  98.    ability to control the sharing of bandwidth on a particular link
  99.    among different traffic classes.  They want to be able to divide
  100.    traffic into a few administrative classes and assign to each a
  101.    minimum percentage of the link bandwidth under conditions of
  102.    overload, while allowing "unused" bandwidth to be available at other
  103.    times.  These classes may represent different user groups or
  104.    different protocol families, for example.  Such a management facility
  105.    is commonly called controlled link-sharing.  We use the term
  106.    integrated services (IS) for an Internet service model that includes
  107.    best-effort service, real-time service, and controlled link sharing.
  108.  
  109.    The requirements and mechanisms for integrated services have been the
  110.    subjects of much discussion and research over the past several years
  111.  
  112.  
  113.  
  114. Braden, Clark & Shenker                                         [Page 2]
  115.  
  116. RFC 1633            Integrated Services Architecture           June 1994
  117.  
  118.  
  119.    (the literature is much too large to list even a representative
  120.    sample here; see the references in [CSZ92, Floyd92, Jacobson91,
  121.    JSCZ93, Partridge92, SCZ93, RSVP93a] for a partial list).  This work
  122.    has led to the unified approach to integrated services support that
  123.    is described in this memo.  We believe that it is now time to begin
  124.    the engineering that must precede deployment of integrated services
  125.    in the Internet.
  126.  
  127.    Section 2 of this memo introduces the elements of an IS extension of
  128.    the Internet.  Section 3 discusses real-time service models [SCZ93a,
  129.    SCZ93b].  Section 4 discusses traffic control, the forwarding
  130.    algorithms to be used in routers [CSZ92].  Section 5 discusses the
  131.    design of RSVP, a resource setup protocol compatible with the
  132.    assumptions of our IS model [RSVP93a, RSVP93b].
  133.  
  134. 2. Elements of the Architecture
  135.  
  136.    The fundamental service model of the Internet, as embodied in the
  137.    best-effort delivery service of IP, has been unchanged since the
  138.    beginning of the Internet research project 20 years ago [CerfKahn74].
  139.    We are now proposing to alter that model to encompass integrated
  140.    service.  From an academic viewpoint, changing the service model of
  141.    the Internet is a major undertaking; however, its impact is mitigated
  142.    by the fact that we wish only to extend the original architecture.
  143.    The new components and mechanisms to be added will supplement but not
  144.    replace the basic IP service.
  145.  
  146.    Abstractly, the proposed architectural extension is comprised of two
  147.    elements: (1) an extended service model, which we call the IS model,
  148.    and (2) a reference implementation framework, which gives us a set of
  149.    vocabulary and a generic program organization to realize the IS
  150.    model.  It is important to separate the service model, which defines
  151.    the externally visible behavior, from the discussion of the
  152.    implementation, which may (and should) change during the life of the
  153.    service model.  However, the two are related; to make the service
  154.    model credible, it is useful to provide an example of how it might be
  155.    realized.
  156.  
  157.    2.1 Integrated Services Model
  158.  
  159.       The IS model we are proposing includes two sorts of service
  160.       targeted towards real-time traffic: guaranteed and predictive
  161.       service.  It integrates these services with controlled link-
  162.       sharing, and it is designed to work well with multicast as well as
  163.       unicast.  Deferring a summary of the IS model to Section 3, we
  164.       first discuss some key assumptions behind the model.
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Braden, Clark & Shenker                                         [Page 3]
  171.  
  172. RFC 1633            Integrated Services Architecture           June 1994
  173.  
  174.  
  175.       The first assumption is that resources (e.g., bandwidth) must be
  176.       explicitly managed in order to meet application requirements.
  177.       This implies that "resource reservation" and "admission control"
  178.       are key building blocks of the service.  An alternative approach,
  179.       which we reject, is to attempt to support real-time traffic
  180.       without any explicit changes to the Internet service model.
  181.  
  182.       The essence of real-time service is the requirement for some
  183.       service guarantees, and we argue that guarantees cannot be
  184.       achieved without reservations.  The term "guarantee" here is to be
  185.       broadly interpreted; they may be absolute or statistical, strict
  186.       or approximate.  However, the user must be able to get a service
  187.       whose quality is sufficiently predictable that the application can
  188.       operate in an acceptable way over a duration of time determined by
  189.       the user.  Again, "sufficiently" and "acceptable" are vague terms.
  190.       In general, stricter guarantees have a higher cost in resources
  191.       that are made unavailable for sharing with others.
  192.  
  193.       The following arguments have been raised against resource
  194.       guarantees in the Internet.
  195.  
  196.       o    "Bandwidth will be infinite."
  197.  
  198.            The incredibly large carrying capacity of an optical fiber
  199.            leads some to conclude that in the future bandwidth will be
  200.            so abundant, ubiquitous, and cheap that there will be no
  201.            communication delays other than the speed of light, and
  202.            therefore there will be no need to reserve resources.
  203.            However, we believe that this will be impossible in the short
  204.            term and unlikely in the medium term.  While raw bandwidth
  205.            may seem inexpensive, bandwidth provided as a network service
  206.            is not likely to become so cheap that wasting it will be the
  207.            most cost-effective design principle.  Even if low-cost
  208.            bandwidth does eventually become commonly available, we do
  209.            not accept that it will be available "everywhere" in the
  210.            Internet.  Unless we provide for the possibility of dealing
  211.            with congested links, then real-time services will simply be
  212.            precluded in those cases.  We find that restriction
  213.            unacceptable.
  214.  
  215.       o    "Simple priority is sufficient."
  216.  
  217.            It is true that simply giving higher priority to real-time
  218.            traffic would lead to adequate real-time service at some
  219.            times and under some conditions.  But priority is an
  220.            implementation mechanism, not a service model.  If we define
  221.            the service by means of a specific mechanism, we may not get
  222.            the exact features we want.  In the case of simple priority,
  223.  
  224.  
  225.  
  226. Braden, Clark & Shenker                                         [Page 4]
  227.  
  228. RFC 1633            Integrated Services Architecture           June 1994
  229.  
  230.  
  231.            the issue is that as soon as there are too many real-time
  232.            streams competing for the higher priority, every stream is
  233.            degraded.  Restricting our service to this single failure
  234.            mode is unacceptable.  In some cases, users will demand that
  235.            some streams succeed while some new requests receive a "busy
  236.            signal".
  237.  
  238.       o    "Applications can adapt."
  239.  
  240.            The development of adaptive real-time applications, such as
  241.            Jacobson's audio program VAT, does not eliminate the need to
  242.            bound packet delivery time.  Human requirements for
  243.            interaction and intelligibility limit the possible range of
  244.            adaptation to network delays.  We have seen in real
  245.            experiments that, while VAT can adapt to network delays of
  246.            many seconds, the users find that interaction is impossible
  247.            in these cases.
  248.  
  249.       We conclude that there is an inescapable requirement for routers
  250.       to be able to reserve resources, in order to provide special QoS
  251.       for specific user packet streams, or "flows".  This in turn
  252.       requires flow-specific state in the routers, which represents an
  253.       important and fundamental change to the Internet model.  The
  254.       Internet architecture was been founded on the concept that all
  255.       flow-related state should be in the end systems [Clark88].
  256.       Designing the TCP/IP protocol suite on this concept led to a
  257.       robustness that is one of the keys to its success.  In section 5
  258.       we discuss how the flow state added to the routers for resource
  259.       reservation can be made "soft", to preserve the robustness of the
  260.       Internet protocol suite.
  261.  
  262.       There is a real-world side effect of resource reservation in
  263.       routers.  Since it implies that some users are getting privileged
  264.       service, resource reservation will need enforcement of policy and
  265.       administrative controls.  This in turn will lead to two kinds of
  266.       authentication requirements:  authentication of users who make
  267.       reservation requests, and authentication of packets that use the
  268.       reserved resources.  However, these issues are not unique to "IS";
  269.       other aspects of the evolution of the Internet, including
  270.       commercialization and commercial security, are leading to the same
  271.       requirements.  We do not discuss the issues of policy or security
  272.       further in this memo, but they will require attention.
  273.  
  274.       We make another fundamental assumption, that it is desirable to
  275.       use the Internet as a common infrastructure to support both non-
  276.       real-time and real-time communication.  One could alternatively
  277.       build an entirely new, parallel infrastructure for real-time
  278.       services, leaving the Internet unchanged.  We reject this
  279.  
  280.  
  281.  
  282. Braden, Clark & Shenker                                         [Page 5]
  283.  
  284. RFC 1633            Integrated Services Architecture           June 1994
  285.  
  286.  
  287.       approach, as it would lose the significant advantages of
  288.       statistical sharing between real-time and non-real-time traffic,
  289.       and it would be much more complex to build and administer than a
  290.       common infrastructure.
  291.  
  292.       In addition to this assumption of common infrastructure, we adopt
  293.       a unified protocol stack model, employing a single internet-layer
  294.       protocol for both real-time and non-real-time service.  Thus, we
  295.       propose to use the existing internet-layer protocol (e.g., IP or
  296.       CLNP) for real-time data.  Another approach would be to add a new
  297.       real-time protocol in the internet layer [ST2-90].  Our unified
  298.       stack approach provides economy of mechanism, and it allows us to
  299.       fold controlled link-sharing in easily.  It also handles the
  300.       problem of partial coverage, i.e., allowing interoperation between
  301.       IS-capable Internet systems and systems that have not been
  302.       extended, without the complexity of tunneling.
  303.  
  304.       We take the view that there should be a single service model for
  305.       the Internet.  If there were different service models in different
  306.       parts of the Internet, it is very difficult to see how any end-
  307.       to-end service quality statements could be made.  However, a
  308.       single service model does not necessarily imply a single
  309.       implementation for packet scheduling or admission control.
  310.       Although specific packet scheduling and admission control
  311.       mechanisms that satisfy our service model have been developed, it
  312.       is quite possible that other mechanisms will also satisfy the
  313.       service model.  The reference implementation framework, introduced
  314.       below, is intended to allow discussion of implementation issues
  315.       without mandating a single design.
  316.  
  317.       Based upon these considerations, we believe that an IS extension
  318.       that includes additional flow state in routers and an explicit
  319.       setup mechanism is necessary to provide the needed service.  A
  320.       partial solution short of this point would not be a wise
  321.       investment.  We believe that the extensions we propose preserve
  322.       the essential robustness and efficiency of the Internet
  323.       architecture, and they allow efficient management of the network
  324.       resources; these will be important goals even if bandwidth becomes
  325.       very inexpensive.
  326.  
  327.    2.2 Reference Implementation Framework
  328.  
  329.       We propose a reference implementation framework to realize the IS
  330.       model.  This framework includes four components: the packet
  331.       scheduler, the admission control routine, the classifier, and the
  332.       reservation setup protocol.  These are discussed briefly below and
  333.       more fully in Sections 4 and 5.
  334.  
  335.  
  336.  
  337.  
  338. Braden, Clark & Shenker                                         [Page 6]
  339.  
  340. RFC 1633            Integrated Services Architecture           June 1994
  341.  
  342.  
  343.       In the ensuing discussion, we define the "flow" abstraction as a
  344.       distinguishable stream of related datagrams that results from a
  345.       single user activity and requires the same QoS.  For example, a
  346.       flow might consist of one transport connection or one video stream
  347.       between a given host pair.  It is the finest granularity of packet
  348.       stream distinguishable by the IS.  We define a flow to be simplex,
  349.       i.e., to have a single source but N destinations.  Thus, an N-way
  350.       teleconference will generally require N flows, one originating at
  351.       each site.
  352.  
  353.       In today's Internet, IP forwarding is completely egalitarian; all
  354.       packets receive the same quality of service, and packets are
  355.       typically forwarded using a strict FIFO queueing discipline.  For
  356.       integrated services, a router must implement an appropriate QoS
  357.       for each flow, in accordance with the service model.  The router
  358.       function that creates different qualities of service is called
  359.       "traffic control".  Traffic control in turn is implemented by
  360.       three components: the packet scheduler, the classifier, and
  361.       admission control.
  362.  
  363.       o    Packet Scheduler
  364.  
  365.            The packet scheduler manages the forwarding of different
  366.            packet streams using a set of queues and perhaps other
  367.            mechanisms like timers.  The packet scheduler must be
  368.            implemented at the point where packets are queued; this is
  369.            the output driver level of a typical operating system, and
  370.            corresponds to the link layer protocol.  The details of the
  371.            scheduling algorithm may be specific to the particular output
  372.            medium.  For example, the output driver will need to invoke
  373.            the appropriate link-layer controls when interfacing to a
  374.            network technology that has an internal bandwidth allocation
  375.            mechanism.
  376.  
  377.            An experimental packet scheduler has been built that
  378.            implements the IS model described in Section 3 and [SCZ93];
  379.            this is known as the CSZ scheduler and is discussed further
  380.            in Section 4.  We note that the CSZ scheme is not mandatory
  381.            to accomplish our service model; indeed for parts of the
  382.            network that are known always to be underloaded, FIFO will
  383.            deliver satisfactory service.
  384.  
  385.            There is another component that could be considered part of
  386.            the packet scheduler or separate: the estimator [Jacobson91].
  387.            This algorithm is used to measure properties of the outgoing
  388.            traffic stream, to develop statistics that control packet
  389.            scheduling and admission control.  This memo will consider
  390.            the estimator to be a part of the packet scheduler.
  391.  
  392.  
  393.  
  394. Braden, Clark & Shenker                                         [Page 7]
  395.  
  396. RFC 1633            Integrated Services Architecture           June 1994
  397.  
  398.  
  399.       o    Classifier
  400.  
  401.            For the purpose of traffic control (and accounting), each
  402.            incoming packet must be mapped into some class; all packets
  403.            in the same class get the same treatment from the packet
  404.            scheduler.  This mapping is performed by the classifier.
  405.            Choice of a class may be based upon the contents of the
  406.            existing packet header(s) and/or some additional
  407.            classification number added to each packet.
  408.  
  409.            A class might correspond to a broad category of flows, e.g.,
  410.            all video flows or all flows attributable to a particular
  411.            organization.  On the other hand, a class might hold only a
  412.            single flow.  A class is an abstraction that may be local to
  413.            a particular router; the same packet may be classified
  414.            differently by different routers along the path.  For
  415.            example, backbone routers may choose to map many flows into a
  416.            few aggregated classes, while routers nearer the periphery,
  417.            where there is much less aggregation, may use a separate
  418.            class for each flow.
  419.  
  420.       o    Admission Control
  421.  
  422.            Admission control implements the decision algorithm that a
  423.            router or host uses to determine whether a new flow can be
  424.            granted the requested QoS without impacting earlier
  425.            guarantees.  Admission control is invoked at each node to
  426.            make a local accept/reject decision, at the time a host
  427.            requests a real-time service along some path through the
  428.            Internet.  The admission control algorithm must be consistent
  429.            with the service model, and it is logically part of traffic
  430.            control.  Although there are still open research issues in
  431.            admission control, a first cut exists [JCSZ92].
  432.  
  433.            Admission control is sometimes confused with policing or
  434.            enforcement, which is a packet-by-packet function at the
  435.            "edge" of the network to ensure that a host does not violate
  436.            its promised traffic characteristics.  We consider policing
  437.            to be one of the functions of the packet scheduler.
  438.  
  439.            In addition to ensuring that QoS guarantees are met,
  440.            admission control will be concerned with enforcing
  441.            administrative policies on resource reservations.  Some
  442.            policies will demand authentication of those requesting
  443.            reservations.  Finally, admission control will play an
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Braden, Clark & Shenker                                         [Page 8]
  451.  
  452. RFC 1633            Integrated Services Architecture           June 1994
  453.  
  454.  
  455.            important role in accounting and administrative reporting.
  456.  
  457.       The fourth and final component of our implementation framework is
  458.       a reservation setup protocol, which is necessary to create and
  459.       maintain flow-specific state in the endpoint hosts and in routers
  460.       along the path of a flow.  Section  discusses a reservation setup
  461.       protocol called RSVP (for "ReSerVation Protocol") [RSVP93a,
  462.       RSVP93b].  It may not be possible to insist that there be only one
  463.       reservation protocol in the Internet, but we will argue that
  464.       multiple choices for reservation protocols will cause confusion.
  465.       We believe that multiple protocols should exist only if they
  466.       support different modes of reservation.
  467.  
  468.       The setup requirements for the link-sharing portion of the service
  469.       model are far less clear than those for resource reservations.
  470.       While we expect that much of this can be done through network
  471.       management interfaces, and thus need not be part of the overall
  472.       architecture, we may also need RSVP to play a role in providing
  473.       the required state.
  474.  
  475.       In order to state its resource requirements, an application must
  476.       specify the desired QoS using a list of parameters that is called
  477.       a "flowspec" [Partridge92].  The flowspec is carried by the
  478.       reservation setup protocol, passed to admission control for to
  479.       test for acceptability, and ultimately used to parametrize the
  480.       packet scheduling mechanism.
  481.  
  482.       Figure  shows how these components might fit into an IP router
  483.       that has been extended to provide integrated services.  The router
  484.       has two broad functional divisions:  the forwarding path below the
  485.       double horizontal line, and the background code above the line.
  486.  
  487.       The forwarding path of the router is executed for every packet and
  488.       must therefore be highly optimized.  Indeed, in most commercial
  489.       routers, its implementation involves a hardware assist.  The
  490.       forwarding path is divided into three sections: input driver,
  491.       internet forwarder, and output driver.  The internet forwarder
  492.       interprets the internetworking protocol header appropriate to the
  493.       protocol suite, e.g., the IP header for TCP/IP, or the CLNP header
  494.       for OSI.  For each packet, an internet forwarder executes a
  495.       suite-dependent classifier and then passes the packet and its
  496.       class to the appropriate output driver.  A classifier must be both
  497.       general and efficient.  For efficiency, a common mechanism should
  498.       be used for both resource classification and route lookup.
  499.  
  500.       The output driver implements the packet scheduler.  (Layerists
  501.       will observe that the output driver now has two distinct sections:
  502.       the packet scheduler that is largely independent of the detailed
  503.  
  504.  
  505.  
  506. Braden, Clark & Shenker                                         [Page 9]
  507.  
  508. RFC 1633            Integrated Services Architecture           June 1994
  509.  
  510.  
  511.       mechanics of the interface, and the actual I/O driver that is only
  512.       concerned with the grittiness of the hardware.  The estimator
  513.       lives somewhere in between.  We only note this fact, without
  514.       suggesting that it be elevated to a principle.).
  515.  
  516.  
  517.         _____________________________________________________________
  518.        |         ____________     ____________     ___________       |
  519.        |        |            |   | Reservation|   |           |      |
  520.        |        |   Routing  |   |    Setup   |   | Management|      |
  521.        |        |    Agent   |   |    Agent   |   |  Agent    |      |
  522.        |        |______._____|   |______._____|   |_____._____|      |
  523.        |               .                .    |          .            |
  524.        |               .                .   _V________  .            |
  525.        |               .                .  | Admission| .            |
  526.        |               .                .  |  Control | .            |
  527.        |               V                .  |__________| .            |
  528.        |           [Routing ]           V               V            |
  529.        |           [Database]     [Traffic Control Database]         |
  530.        |=============================================================|
  531.        |        |                  |     _______                     |
  532.        |        |   __________     |    |_|_|_|_| => o               |
  533.        |        |  |          |    |      Packet     |     _____     |
  534.        |     ====> |Classifier| =====>   Scheduler   |===>|_|_|_| ===>
  535.        |        |  |__________|    |     _______     |               |
  536.        |        |                  |    |_|_|_|_| => o               |
  537.        | Input  |   Internet       |                                 |
  538.        | Driver |   Forwarder      |     O u t p u t   D r i v e r   |
  539.        |________|__________________|_________________________________|
  540.  
  541.              Figure 1: Implementation Reference Model for Routers
  542.  
  543.  
  544.       The background code is simply loaded into router memory and
  545.       executed by a general-purpose CPU.  These background routines
  546.       create data structures that control the forwarding path.  The
  547.       routing agent implements a particular routing protocol and builds
  548.       a routing database.  The reservation setup agent implements the
  549.       protocol used to set up resource reservations; see Section .  If
  550.       admission control gives the "OK" for a new request, the
  551.       appropriate changes are made to the classifier and packet
  552.       scheduler database to implement the desired QoS.  Finally, every
  553.       router supports an agent for network management.  This agent must
  554.       be able to modify the classifier and packet scheduler databases to
  555.       set up controlled link-sharing and to set admission control
  556.       policies.
  557.  
  558.  
  559.  
  560.  
  561.  
  562. Braden, Clark & Shenker                                        [Page 10]
  563.  
  564. RFC 1633            Integrated Services Architecture           June 1994
  565.  
  566.  
  567.       The implementation framework for a host is generally similar to
  568.       that for a router, with the addition of applications.  Rather than
  569.       being forwarded, host data originates and terminates in an
  570.       application.  An application needing a real-time QoS for a flow
  571.       must somehow invoke a local reservation setup agent.  The best way
  572.       to interface to applications is still to be determined.  For
  573.       example, there might be an explicit API for network resource
  574.       setup, or the setup might be invoked implicitly as part of the
  575.       operating system scheduling function.  The IP output routine of a
  576.       host may need no classifier, since the class assignment for a
  577.       packet can be specified in the local I/O control structure
  578.       corresponding to the flow.
  579.  
  580.       In routers, integrated service will require changes to both the
  581.       forwarding path and the background functions.  The forwarding
  582.       path, which may depend upon hardware acceleration for performance,
  583.       will be the more difficult and costly to change.  It will be vital
  584.       to choose a set of traffic control mechanisms that is general and
  585.       adaptable to a wide variety of policy requirements and future
  586.       circumstances, and that can be implemented efficiently.
  587.  
  588. 3. Integrated Services Model
  589.  
  590.    A service model is embedded within the network service interface
  591.    invoked by applications to define the set of services they can
  592.    request.  While both the underlying network technology and the
  593.    overlying suite of applications will evolve, the need for
  594.    compatibility requires that this service interface remain relatively
  595.    stable (or, more properly, extensible; we do expect to add new
  596.    services in the future but we also expect that it will be hard to
  597.    change existing services).  Because of its enduring impact, the
  598.    service model should not be designed in reference to any specific
  599.    network artifact but rather should be based on fundamental service
  600.    requirements.
  601.  
  602.    We now briefly describe a proposal for a core set of services for the
  603.    Internet; this proposed core service model is more fully described in
  604.    [SCZ93a, SCZ93b].  This core service model addresses those services
  605.    which relate most directly to the time-of-delivery of packets.  We
  606.    leave the remaining services (such as routing, security, or stream
  607.    synchronization) for other standardization venues.  A service model
  608.    consists of a set of service commitments; in response to a service
  609.    request the network commits to deliver some service.  These service
  610.    commitments can be categorized by the entity to whom they are made:
  611.    they can be made to either individual flows or to collective entities
  612.    (classes of flows).  The service commitments made to individual flows
  613.    are intended to provide reasonable application performance, and thus
  614.    are driven by the ergonomic requirements of the applications; these
  615.  
  616.  
  617.  
  618. Braden, Clark & Shenker                                        [Page 11]
  619.  
  620. RFC 1633            Integrated Services Architecture           June 1994
  621.  
  622.  
  623.    service commitments relate to the quality of service delivered to an
  624.    individual flow.  The service commitments made to collective entities
  625.    are driven by resource-sharing, or economic, requirements; these
  626.    service commitments relate to the aggregate resources made available
  627.    to the various entities.
  628.  
  629.    In this section we start by exploring the service requirements of
  630.    individual flows and propose a corresponding set of services.  We
  631.    then discuss the service requirements and services for resource
  632.    sharing.  Finally, we conclude with some remarks about packet
  633.    dropping.
  634.  
  635.    3.1 Quality of Service Requirements
  636.  
  637.       The core service model is concerned almost exclusively with the
  638.       time-of-delivery of packets.  Thus, per-packet delay is the
  639.       central quantity about which the network makes quality of service
  640.       commitments.  We make the even more restrictive assumption that
  641.       the only quantity about which we make quantitative service
  642.       commitments are bounds on the maximum and minimum delays.
  643.  
  644.       The degree to which application performance depends on low delay
  645.       service varies widely, and we can make several qualitative
  646.       distinctions between applications based on the degree of their
  647.       dependence.  One class of applications needs the data in each
  648.       packet by a certain time and, if the data has not arrived by then,
  649.       the data is essentially worthless; we call these real-time
  650.       applications.  Another class of applications will always wait for
  651.       data to arrive; we call these " elastic" applications.  We now
  652.       consider the delay requirements of these two classes separately.
  653.  
  654.       3.1.1 Real-Time Applications
  655.  
  656.          An important class of such real-time applications, which are
  657.          the only real-time applications we explicitly consider in the
  658.          arguments that follow, are "playback" applications.  In a
  659.          playback application, the source takes some signal, packetizes
  660.          it, and then transmits the packets over the network.  The
  661.          network inevitably introduces some variation in the delay of
  662.          the delivered packets.  The receiver depacketizes the data and
  663.          then attempts to faithfully play back the signal.  This is done
  664.          by buffering the incoming data and then replaying the signal at
  665.          some fixed offset delay from the original departure time; the
  666.          term "playback point" refers to the point in time which is
  667.          offset from the original departure time by this fixed delay.
  668.          Any data that arrives before its associated playback point can
  669.          be used to reconstruct the signal; data arriving after the
  670.          playback point is essentially useless in reconstructing the
  671.  
  672.  
  673.  
  674. Braden, Clark & Shenker                                        [Page 12]
  675.  
  676. RFC 1633            Integrated Services Architecture           June 1994
  677.  
  678.  
  679.          real-time signal.
  680.  
  681.          In order to choose a reasonable value for the offset delay, an
  682.          application needs some "a priori" characterization of the
  683.          maximum delay its packets will experience.  This "a priori"
  684.          characterization could either be provided by the network in a
  685.          quantitative service commitment to a delay bound, or through
  686.          the observation of the delays experienced by the previously
  687.          arrived packets; the application needs to know what delays to
  688.          expect, but this expectation need not be constant for the
  689.          entire duration of the flow.
  690.  
  691.          The performance of a playback application is measured along two
  692.          dimensions:  latency and fidelity.  Some playback applications,
  693.          in particular those that involve interaction between the two
  694.          ends of a connection such as a phone call, are rather sensitive
  695.          to the latency; other playback applications, such as
  696.          transmitting a movie or lecture, are not.  Similarly,
  697.          applications exhibit a wide range of sensitivity to loss of
  698.          fidelity.  We will consider two somewhat artificially
  699.          dichotomous classes: intolerant applications, which require an
  700.          absolutely faithful playback, and tolerant applications, which
  701.          can tolerate some loss of fidelity.  We expect that the vast
  702.          bulk of audio and video applications will be tolerant, but we
  703.          also suspect that there will be other applications, such as
  704.          circuit emulation, that are intolerant.
  705.  
  706.          Delay can affect the performance of playback applications in
  707.          two ways.  First, the value of the offset delay, which is
  708.          determined by predictions about the future packet delays,
  709.          determines the latency of the application.  Second, the delays
  710.          of individual packets can decrease the fidelity of the playback
  711.          by exceeding the offset delay; the application then can either
  712.          change the offset delay in order to play back late packets
  713.          (which introduces distortion) or merely discard late packets
  714.          (which creates an incomplete signal).  The two different ways
  715.          of coping with late packets offer a choice between an
  716.          incomplete signal and a distorted one, and the optimal choice
  717.          will depend on the details of the application, but the
  718.          important point is that late packets necessarily decrease
  719.          fidelity.
  720.  
  721.          Intolerant applications must use a fixed offset delay, since
  722.          any variation in the offset delay will introduce some
  723.          distortion in the playback.  For a given distribution of packet
  724.          delays, this fixed offset delay must be larger than the
  725.          absolute maximum delay, to avoid the possibility of late
  726.          packets.   Such an application can only set its offset delay
  727.  
  728.  
  729.  
  730. Braden, Clark & Shenker                                        [Page 13]
  731.  
  732. RFC 1633            Integrated Services Architecture           June 1994
  733.  
  734.  
  735.          appropriately if it is given a perfectly reliable upper bound
  736.          on the maximum delay of each packet.  We call a service
  737.          characterized by a perfectly reliable upper bound on delay "
  738.          guaranteed service", and propose this as the appropriate
  739.          service model for intolerant playback applications.
  740.  
  741.          In contrast, tolerant applications need not set their offset
  742.          delay greater than the absolute maximum delay, since they can
  743.          tolerate some late packets.  Moreover, instead of using a
  744.          single fixed value for the offset delay, they can attempt to
  745.          reduce their latency by varying their offset delays in response
  746.          to the actual packet delays experienced in the recent past.  We
  747.          call applications which vary their offset delays in this manner
  748.          "adaptive" playback applications.
  749.  
  750.          For tolerant applications we propose a service model called "
  751.          predictive service" which supplies a fairly reliable, but not
  752.          perfectly reliable, delay bound.  This bound, in contrast to
  753.          the bound in the guaranteed service, is not based on worst case
  754.          assumptions on the behavior of other flows.  Instead, this
  755.          bound might be computed with properly conservative predictions
  756.          about the behavior of other flows.  If the network turns out to
  757.          be wrong and the bound is violated, the application's
  758.          performance will perhaps suffer, but the users are willing to
  759.          tolerate such interruptions in service in return for the
  760.          presumed lower cost of the service.  Furthermore, because many
  761.          of the tolerant applications are adaptive, we augment the
  762.          predictive service to also give "minimax" service, which is to
  763.          attempt to minimize the ex post maximum delay.  This service is
  764.          not trying to minimize the delay of every packet, but rather is
  765.          trying to pull in the tail of the delay distribution.
  766.  
  767.          It is clear that given a choice, with all other things being
  768.          equal, an application would perform no worse with absolutely
  769.          reliable bounds than with fairly reliable bounds.  Why, then,
  770.          do we offer predictive service?  The key consideration here is
  771.          efficiency; when one relaxes the service requirements from
  772.          perfectly to fairly reliable bounds, this increases the level
  773.          of network utilization that can be sustained, and thus the
  774.          price of the predictive service will presumably be lower than
  775.          that of guaranteed service.  The predictive service class is
  776.          motivated by the conjecture that the performance penalty will
  777.          be small for tolerant applications but the overall efficiency
  778.          gain will be quite large.
  779.  
  780.          In order to provide a delay bound, the nature of the traffic
  781.          from the source must be characterized, and there must be some
  782.          admission control algorithm which insures that a requested flow
  783.  
  784.  
  785.  
  786. Braden, Clark & Shenker                                        [Page 14]
  787.  
  788. RFC 1633            Integrated Services Architecture           June 1994
  789.  
  790.  
  791.          can actually be accommodated. A fundamental point of our
  792.          overall architecture is that traffic characterization and
  793.          admission control are necessary for these real-time delay bound
  794.          services.  So far we have assumed that an application's data
  795.          generation process is an intrinsic property unaffected by the
  796.          network.  However, there are likely to be many audio and video
  797.          applications which can adjust their coding scheme and thus can
  798.          alter the resulting data generation process depending on the
  799.          network service available.  This alteration of the coding
  800.          scheme will present a tradeoff between fidelity (of the coding
  801.          scheme itself, not of the playback process) and the bandwidth
  802.          requirements of the flow.  Such "rate-adaptive" playback
  803.          applications have the advantage that they can adjust to the
  804.          current network conditions not just by resetting their playback
  805.          point but also by adjusting the traffic pattern itself.  For
  806.          rate-adaptive applications, the traffic characterizations used
  807.          in the service commitment are not immutable.  We can thus
  808.          augment the service model by allowing the network to notify
  809.          (either implicitly through packet drops or explicitly through
  810.          control packets) rate-adaptive applications to change their
  811.          traffic characterization.
  812.  
  813.       3.1.2 Elastic Applications
  814.  
  815.          While real-time applications do not wait for late data to
  816.          arrive, elastic applications will always wait for data to
  817.          arrive.  It is not that these applications are insensitive to
  818.          delay; to the contrary, significantly increasing the delay of a
  819.          packet will often harm the application's performance.  Rather,
  820.          the key point is that the application typically uses the
  821.          arriving data immediately, rather than buffering it for some
  822.          later time, and will always choose to wait for the incoming
  823.          data rather than proceed without it.  Because arriving data can
  824.          be used immediately, these applications do not require any a
  825.          priori characterization of the service in order for the
  826.          application to function.  Generally speaking, it is likely that
  827.          for a given distribution of packet delays, the perceived
  828.          performance of elastic applications will depend more on the
  829.          average delay than on the tail of the delay distribution.  One
  830.          can think of several categories of such elastic applications:
  831.          interactive burst (Telnet, X, NFS), interactive bulk transfer
  832.          (FTP), and asynchronous bulk transfer (electronic mail, FAX).
  833.          The delay requirements of these elastic applications vary from
  834.          rather demanding for interactive burst applications to rather
  835.          lax for asynchronous bulk transfer, with interactive bulk
  836.          transfer being intermediate between them.
  837.  
  838.  
  839.  
  840.  
  841.  
  842. Braden, Clark & Shenker                                        [Page 15]
  843.  
  844. RFC 1633            Integrated Services Architecture           June 1994
  845.  
  846.  
  847.          An appropriate service model for elastic applications is to
  848.          provide "as-soon-as-possible", or ASAP service. (For
  849.          compatibility with historical usage, we will use the term
  850.          best-effort service when referring to ASAP service.).  We
  851.          furthermore propose to offer several classes of best-effort
  852.          service to reflect the relative delay sensitivities of
  853.          different elastic applications.  This service model allows
  854.          interactive burst applications to have lower delays than
  855.          interactive bulk applications, which in turn would have lower
  856.          delays than asynchronous bulk applications.  In contrast to the
  857.          real-time service models, applications using this service are
  858.          not subject to admission control.
  859.  
  860.          The taxonomy of applications into tolerant playback, intolerant
  861.          playback, and elastic is neither exact nor complete, but was
  862.          only used to guide the development of the core service model.
  863.          The resulting core service model should be judged not on the
  864.          validity of the underlying taxonomy but rather on its ability
  865.          to adequately meet the needs of the entire spectrum of
  866.          applications.  In particular, not all real-time applications
  867.          are playback applications; for example, one might imagine a
  868.          visualization application which merely displayed the image
  869.          encoded in each packet whenever it arrived.  However, non-
  870.          playback applications can still use either the guaranteed or
  871.          predictive real-time service model, although these services are
  872.          not specifically tailored to their needs.  Similarly, playback
  873.          applications cannot be neatly classified as either tolerant or
  874.          intolerant, but rather fall along a continuum; offering both
  875.          guaranteed and predictive service allows applications to make
  876.          their own tradeoff between fidelity, latency, and cost.
  877.          Despite these obvious deficiencies in the taxonomy, we expect
  878.          that it describes the service requirements of current and
  879.          future applications well enough so that our core service model
  880.          can adequately meet all application needs.
  881.  
  882.    3.2 Resource-Sharing Requirements and Service Models
  883.  
  884.       The last section considered quality of service commitments; these
  885.       commitments dictate how the network must allocate its resources
  886.       among the individual flows.  This allocation of resources is
  887.       typically negotiated on a flow-by-flow basis as each flow requests
  888.       admission to the network, and does not address any of the policy
  889.       issues that arise when one looks at collections of flows.  To
  890.       address these collective policy issues, we now discuss resource-
  891.       sharing service commitments.  Recall that for individual quality
  892.       of service commitments we focused on delay as the only quantity of
  893.       interest.  Here, we postulate that the quantity of primary
  894.       interest in resource-sharing is aggregate bandwidth on individual
  895.  
  896.  
  897.  
  898. Braden, Clark & Shenker                                        [Page 16]
  899.  
  900. RFC 1633            Integrated Services Architecture           June 1994
  901.  
  902.  
  903.       links.  Thus, this component of the service model, called "link-
  904.       sharing", addresses the question of how to share the aggregate
  905.       bandwidth of a link among various collective entities according to
  906.       some set of specified shares.  There are several examples that are
  907.       commonly used to explain the requirement of link-sharing among
  908.       collective entities.
  909.  
  910.       Multi-entity link-sharing. -- A link may be purchased and used
  911.       jointly by several organizations, government agencies or the like.
  912.       They may wish to insure that under overload the link is shared in
  913.       a controlled way, perhaps in proportion to the capital investment
  914.       of each entity.  At the same time, they might wish that when the
  915.       link is underloaded, any one of the entities could utilize all the
  916.       idle bandwidth.
  917.  
  918.       Multi-protocol link-sharing -- In a multi-protocol Internet, it
  919.       may be desired to prevent one protocol family (DECnet, IP, IPX,
  920.       OSI, SNA, etc.) from overloading the link and excluding the other
  921.       families. This is important because different families may have
  922.       different methods of detecting and responding to congestion, and
  923.       some methods may be more "aggressive" than others. This could lead
  924.       to a situation in which one protocol backs off more rapidly than
  925.       another under congestion, and ends up getting no bandwidth.
  926.       Explicit control in the router may be required to correct this.
  927.       Again, one might expect that this control should apply only under
  928.       overload, while permitting an idle link to be used in any
  929.       proportion.
  930.  
  931.       Multi-service sharing -- Within a protocol family such as IP, an
  932.       administrator might wish to limit the fraction of bandwidth
  933.       allocated to various service classes.  For example, an
  934.       administrator might wish to limit the amount of real-time traffic
  935.       to some fraction of the link, to avoid preempting elastic traffic
  936.       such as FTP.
  937.  
  938.       In general terms, the link-sharing service model is to share the
  939.       aggregate bandwidth according to some specified shares.  We can
  940.       extend this link-sharing service model to a hierarchical version.
  941.       For instance, a link could be divided between a number of
  942.       organizations, each of which would divide the resulting allocation
  943.       among a number of protocols, each of which would be divided among
  944.       a number of services.  Here, the sharing is defined by a tree with
  945.       shares assigned to each leaf node.
  946.  
  947.       An idealized fluid model of instantaneous link-sharing with
  948.       proportional sharing of excess is the fluid processor sharing
  949.       model (introduced in [DKS89] and further explored in [Parekh92]
  950.       and generalized to the hierarchical case) where at every instant
  951.  
  952.  
  953.  
  954. Braden, Clark & Shenker                                        [Page 17]
  955.  
  956. RFC 1633            Integrated Services Architecture           June 1994
  957.  
  958.  
  959.       the available bandwidth is shared between the active entities
  960.       (i.e., those having packets in the queue) in proportion to the
  961.       assigned shares of the resource.  This fluid model exhibits the
  962.       desired policy behavior but is, of course, an unrealistic
  963.       idealization.  We then propose that the actual service model
  964.       should be to approximate, as closely as possible, the bandwidth
  965.       shares produced by this ideal fluid model.  It is not necessary to
  966.       require that the specific order of packet departures match those
  967.       of the fluid model since we presume that all detailed per-packet
  968.       delay requirements of individual flows are addressed through
  969.       quality of service commitments and, furthermore, the satisfaction
  970.       with the link-sharing service delivered will probably not depend
  971.       very sensitively on small deviations from the scheduling implied
  972.       by the fluid link-sharing model.
  973.  
  974.       We previously observed that admission control was necessary to
  975.       ensure that the real-time service commitments could be met.
  976.       Similarly, admission control will again be necessary to ensure
  977.       that the link-sharing commitments can be met.  For each entity,
  978.       admission control must keep the cumulative guaranteed and
  979.       predictive traffic from exceeding the assigned link-share.
  980.  
  981.    3.3 Packet Dropping
  982.  
  983.       So far, we have implicitly assumed that all packets within a flow
  984.       were equally important.  However, in many audio and video streams,
  985.       some packets are more valuable than others.  We therefore propose
  986.       augmenting the service model with a "preemptable" packet service,
  987.       whereby some of the packets within a flow could be marked as
  988.       preemptable.  When the network was in danger of not meeting some
  989.       of its quantitative service commitments, it could exercise a
  990.       certain packet's "preemptability option" and discard the packet
  991.       (not merely delay it, since that would introduce out-of-order
  992.       problems).  By discarding these preemptable packets, a router can
  993.       reduce the delays of the not-preempted packets.
  994.  
  995.       Furthermore, one can define a class of packets that is not subject
  996.       to admission control.  In the scenario described above where
  997.       preemptable packets are dropped only when quantitative service
  998.       commitments are in danger of being violated, the expectation is
  999.       that preemptable packets will almost always be delivered and thus
  1000.       they must included in the traffic description used in admission
  1001.       control.  However, we can extend preemptability to the extreme
  1002.       case of "expendable" packets (the term expendable is used to
  1003.       connote an extreme degree of preemptability), where the
  1004.       expectation is that many of these expendable packets may not be
  1005.       delivered.  One can then exclude expendable packets from the
  1006.       traffic description used in admission control; i.e., the packets
  1007.  
  1008.  
  1009.  
  1010. Braden, Clark & Shenker                                        [Page 18]
  1011.  
  1012. RFC 1633            Integrated Services Architecture           June 1994
  1013.  
  1014.  
  1015.       are not considered part of the flow from the perspective of
  1016.       admission control, since there is no commitment that they will be
  1017.       delivered.
  1018.  
  1019.    3.4 Usage Feedback
  1020.  
  1021.       Another important issue in the service is the model for usage
  1022.       feedback, also known as "accounting", to prevent abuse of network
  1023.       resources.   The link-sharing service described earlier can be
  1024.       used to provide administratively-imposed limits on usage.
  1025.       However, a more free-market model of network access will require
  1026.       back-pressure on users for the network resources they reserve.
  1027.       This is a highly contentious issue, and we are not prepared to say
  1028.       more about it at this time.
  1029.  
  1030.    3.5 Reservation Model
  1031.  
  1032.       The "reservation model" describes how an application negotiates
  1033.       for a QoS level.  The simplest model is that the application asks
  1034.       for a particular QoS and the network either grants it or refuses.
  1035.       Often the situation will be more complex.  Many applications will
  1036.       be able to get acceptable service from a range of QoS levels, or
  1037.       more generally, from anywhere within some region of the multi-
  1038.       dimensional space of a flowspec.
  1039.  
  1040.       For example, rather than simply refusing the request, the network
  1041.       might grant a lower resource level and inform the application of
  1042.       what QoS has been actually granted.  A more complex example is the
  1043.       "two-pass" reservation model, In this scheme, an "offered"
  1044.       flowspec is propagated along the multicast distribution tree from
  1045.       each sender Si to all receivers Rj.  Each router along the path
  1046.       records these values and perhaps adjusts them to reflect available
  1047.       capacity.  The receivers get these offers, generate corresponding
  1048.       "requested" flowspecs, and propagate them back along the same
  1049.       routes to the senders.  At each node, a local reconciliation must
  1050.       be performed between the offered and the requested flowspec to
  1051.       create a reservation, and an appropriately modified requested
  1052.       flowspec is passed on.  This two-pass scheme allows extensive
  1053.       properties like allowed delay to be distributed across hops in the
  1054.       path [Tenet90, ST2-90].  Further work is needed to define the
  1055.       amount of generality, with a corresponding level of complexity,
  1056.       that is required in the reservation model.
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Braden, Clark & Shenker                                        [Page 19]
  1067.  
  1068. RFC 1633            Integrated Services Architecture           June 1994
  1069.  
  1070.  
  1071. 4. Traffic Control Mechanisms
  1072.  
  1073.    We first survey very briefly the possible traffic control mechanisms.
  1074.    Then in Section 4.2 we apply a subset of these mechanisms to support
  1075.    the various services that we have proposed.
  1076.  
  1077.    4.1 Basic Functions
  1078.  
  1079.       In the packet forwarding path, there is actually a very limited
  1080.       set of actions that a router can take.  Given a particular packet,
  1081.       a router must select a route for it; in addition the router can
  1082.       either forward it or drop it, and the router may reorder it with
  1083.       respect to other packets waiting to depart.  The router can also
  1084.       hold the packet, even though the link is idle.  These are the
  1085.       building blocks from which we must fashion the desired behavior.
  1086.  
  1087.       4.1.1 Packet Scheduling
  1088.  
  1089.          The basic function of packet scheduling is to reorder the
  1090.          output queue.  There are many papers that have been written on
  1091.          possible ways to manage the output queue, and the resulting
  1092.          behavior.  Perhaps the simplest approach is a priority scheme,
  1093.          in which packets are ordered by priority, and highest priority
  1094.          packets always leave first.  This has the effect of giving some
  1095.          packets absolute preference over others; if there are enough of
  1096.          the higher priority packets, the lower priority class can be
  1097.          completely prevented from being sent.
  1098.  
  1099.          An alternative scheduling scheme is round-robin or some
  1100.          variant, which gives different classes of packets access to a
  1101.          share of the link. A variant called Weighted Fair Queueing, or
  1102.          WFQ, has been demonstrated to allocate the total bandwidth of a
  1103.          link into specified shares.
  1104.  
  1105.          There are more complex schemes for queue management, most of
  1106.          which involve observing the service objectives of individual
  1107.          packets, such as delivery deadline, and ordering packets based
  1108.          on these criteria.
  1109.  
  1110.       4.1.2 Packet Dropping
  1111.  
  1112.          The controlled dropping of packets is as important as their
  1113.          scheduling.
  1114.  
  1115.          Most obviously, a router must drop packets when its buffers are
  1116.          all full.  This fact, however, does not determine which packet
  1117.          should be dropped.  Dropping the arriving packet, while simple,
  1118.          may cause undesired behavior.
  1119.  
  1120.  
  1121.  
  1122. Braden, Clark & Shenker                                        [Page 20]
  1123.  
  1124. RFC 1633            Integrated Services Architecture           June 1994
  1125.  
  1126.  
  1127.          In the context of today's Internet, with TCP operating over
  1128.          best effort IP service, dropping a packet is taken by TCP as a
  1129.          signal of congestion and causes it to reduce its load on the
  1130.          network.  Thus, picking a packet to drop is the same as picking
  1131.          a source to throttle.  Without going into any particular
  1132.          algorithm, this simple relation suggests that some specific
  1133.          dropping controls should be implemented in routers to improve
  1134.          congestion control.
  1135.  
  1136.          In the context of real-time services, dropping more directly
  1137.          relates to achieving the desired quality of service.  If a
  1138.          queue builds up, dropping one packet reduces the delay of all
  1139.          the packets behind it in the queue.  The loss of one can
  1140.          contribute to the success of many.  The problem for the
  1141.          implementor is to determine when the service objective (the
  1142.          delay bound) is in danger of being violated.  One cannot look
  1143.          at queue length as an indication of how long packets have sat
  1144.          in a queue.  If there is a priority scheme in place, packets of
  1145.          lower priority can be pre-empted indefinitely, so even a short
  1146.          queue may have very old packets in it.  While actual time
  1147.          stamps could be used to measure holding time, the complexity
  1148.          may be unacceptable.
  1149.  
  1150.          Some simple dropping schemes, such as combining all the buffers
  1151.          in a single global pool, and dropping the arriving packet if
  1152.          the pool is full, can defeat the service objective of a WFQ
  1153.          scheduling scheme.  Thus, dropping and scheduling must be
  1154.          coordinated.
  1155.  
  1156.       4.1.3 Packet Classification
  1157.  
  1158.          The above discussion of scheduling and dropping presumed that
  1159.          the packet had been classified into some flow or sequence of
  1160.          packets that should be treated in a specified way.  A
  1161.          preliminary to this sort of processing is the classification
  1162.          itself.  Today a router looks at the destination address and
  1163.          selects a route.  The destination address is not sufficient to
  1164.          select the class of service a packet must receive; more
  1165.          information is needed.
  1166.  
  1167.          One approach would be to abandon the IP datagram model for a
  1168.          virtual circuit model, in which a circuit is set up with
  1169.          specific service attributes, and the packet carries a circuit
  1170.          identifier.  This is the approach of ATM as well as protocols
  1171.          such as ST-II [ST2-90].  Another model, less hostile to IP, is
  1172.          to allow the classifier to look at more fields in the packet,
  1173.          such as the source address, the protocol number and the port
  1174.          fields.  Thus, video streams might be recognized by a
  1175.  
  1176.  
  1177.  
  1178. Braden, Clark & Shenker                                        [Page 21]
  1179.  
  1180. RFC 1633            Integrated Services Architecture           June 1994
  1181.  
  1182.  
  1183.          particular well-known port field in the UDP header, or a
  1184.          particular flow might be recognized by looking at both the
  1185.          source and destination port numbers.  It would be possible to
  1186.          look even deeper into the packets, for example testing a field
  1187.          in the application layer to select a subset of a
  1188.          hierarchically-encoded video stream.
  1189.  
  1190.          The classifier implementation issues are complexity and
  1191.          processing overhead.  Current experience suggests that careful
  1192.          implementation of efficient algorithms can lead to efficient
  1193.          classification of IP packets.  This result is very important,
  1194.          since it allows us to add QoS support to existing applications,
  1195.          such as Telnet, which are based on existing IP headers.
  1196.  
  1197.          One approach to reducing the overhead of classification would
  1198.          be to provide a "flow-id" field in the Internet-layer packet
  1199.          header.  This flow-id would be a handle that could be cached
  1200.          and used to short-cut classification of the packet.  There are
  1201.          a number of variations of this concept, and engineering is
  1202.          required to choose the best design.
  1203.  
  1204.       4.1.4 Admission Control
  1205.  
  1206.          As we stated in the introduction, real-time service depends on
  1207.          setting up state in the router and making commitments to
  1208.          certain classes of packets.  In order to insure that these
  1209.          commitments can be met, it is necessary that resources be
  1210.          explicitly requested, so that the request can be refused if the
  1211.          resources are not available.  The decision about resource
  1212.          availability is called admission control.
  1213.  
  1214.          Admission control requires that the router understand the
  1215.          demands that are currently being made on its assets.  The
  1216.          approach traditionally proposed is to remember the service
  1217.          parameters of past requests, and make a computation based on
  1218.          the worst-case bounds on each service.  A recent proposal,
  1219.          which is likely to provide better link utilization, is to
  1220.          program the router to measure the actual usage by existing
  1221.          packet flows, and to use this measured information as a basis
  1222.          of admitting new flows [JCSZ92]. This approach is subject to
  1223.          higher risk of overload, but may prove much more effective in
  1224.          using bandwidth.
  1225.  
  1226.          Note that while the need for admission control is part of the
  1227.          global service model, the details of the algorithm run in each
  1228.          router is a local matter.  Thus, vendors can compete by
  1229.          developing and marketing better admission control algorithms,
  1230.          which lead to higher link loadings with fewer service
  1231.  
  1232.  
  1233.  
  1234. Braden, Clark & Shenker                                        [Page 22]
  1235.  
  1236. RFC 1633            Integrated Services Architecture           June 1994
  1237.  
  1238.  
  1239.          overloads.
  1240.  
  1241.    4.2 Applying the Mechanisms
  1242.  
  1243.       The various tools described above can be combined to support the
  1244.       services which were discussed in section 3.
  1245.  
  1246.       o    Guaranteed delay bounds
  1247.  
  1248.            A theoretical result by Parekh [Parekh92] shows that if the
  1249.            router implements a WFQ scheduling discipline, and if the
  1250.            nature of the traffic source can be characterized (e.g. if it
  1251.            fits within some bound such as a token bucket) then there
  1252.            will be an absolute upper bound on the network delay of the
  1253.            traffic in question.  This simple and very powerful result
  1254.            applies not just to one switch, but to general networks of
  1255.            routers.  The result is a constructive one; that is, Parekh
  1256.            displays a source behavior which leads to the bound, and then
  1257.            shows that this behavior is the worst possible.  This means
  1258.            that the bound he computes is the best there can be, under
  1259.            these assumptions.
  1260.  
  1261.       o    Link sharing
  1262.  
  1263.            The same WFQ scheme can provide controlled link sharing.  The
  1264.            service objective here is not to bound delay, but to limit
  1265.            overload shares on a link, while allowing any mix of traffic
  1266.            to proceed if there is spare capacity.  This use of WFQ is
  1267.            available in commercial routers today, and is used to
  1268.            segregate traffic into classes based on such things as
  1269.            protocol type or application.  For example, one can allocate
  1270.            separate shares to TCP, IPX and SNA, and one can assure that
  1271.            network control traffic gets a guaranteed share of the link.
  1272.  
  1273.       o    Predictive real-time service
  1274.  
  1275.            This service is actually more subtle than guaranteed service.
  1276.            Its objective is to give a delay bound which is, on the one
  1277.            hand, as low as possible, and on the other hand, stable
  1278.            enough that the receiver can estimate it.  The WFQ mechanism
  1279.            leads to a guaranteed bound, but not necessarily a low bound.
  1280.            In fact, mixing traffic into one queue, rather than
  1281.            separating it as in WFQ, leads to lower bounds, so long as
  1282.            the mixed traffic is generally similar (e.g., mixing traffic
  1283.            from multiple video coders makes sense, mixing video and FTP
  1284.            does not).
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Braden, Clark & Shenker                                        [Page 23]
  1291.  
  1292. RFC 1633            Integrated Services Architecture           June 1994
  1293.  
  1294.  
  1295.            This suggests that we need a two-tier mechanism, in which the
  1296.            first tier separates traffic which has different service
  1297.            objectives, and the second tier schedules traffic within each
  1298.            first tier class in order to meet its service objective.
  1299.  
  1300.    4.3 An example: The CSZ scheme
  1301.  
  1302.       As a proof of concept, a code package has been implemented which
  1303.       realizes the services discussed above.  It actually uses a number
  1304.       of the basic tools, combined in a way specific to the service
  1305.       needs.  We describe in general terms how it works, to suggest how
  1306.       services can be realized.  We stress that there are other ways of
  1307.       building a router to meet the same service needs, and there are in
  1308.       fact other implementations being used today.
  1309.  
  1310.  
  1311.       At the top level, the CSZ code uses WFQ as an isolation mechanism
  1312.       to separate guaranteed flows from each other, as well as from the
  1313.       rest of the traffic.  Guaranteed service gets the highest priority
  1314.       when and only when it needs the access to meets its deadline.  WFQ
  1315.       provides a separate guarantee for each and every guaranteed flow.
  1316.  
  1317.       Predictive service and best effort service are separated by
  1318.       priority.  Within the predictive service class, a further priority
  1319.       is used to provide sub-classes with different delay bounds.
  1320.       Inside each predictive sub-class, simple FIFO queueing is used to
  1321.       mix the traffic, which seems to produce good overall delay
  1322.       behavior.  This works because the top-tier algorithm has separated
  1323.       out the best effort traffic such as FTP.
  1324.  
  1325.       Within the best-effort class, WFQ is used to provide link sharing.
  1326.       Since there is a possible requirement for nested shares, this WFQ
  1327.       code can be used recursively.  There are thus two different uses
  1328.       of WFQ in this code, one to segregate the guaranteed classes, and
  1329.       one to segregate the link shares.  They are similar, but differ in
  1330.       detail.
  1331.  
  1332.       Within each link share of the best effort class, priority is used
  1333.       to permit more time-sensitive elastic traffic to precede other
  1334.       elastic traffic, e.g., to allow interactive traffic to precede
  1335.       asynchronous bulk transfers.
  1336.  
  1337.       The CSZ code thus uses both WFQ and priority in an alternating
  1338.       manner to build a mechanism to support a range of rather
  1339.       sophisticated service offerings.  This discussion is very brief,
  1340.       and does not touch on a number of significant issues, such as how
  1341.       the CSZ code fits real time traffic into the link sharing
  1342.       objectives.  But the basic building blocks are very simple, and
  1343.  
  1344.  
  1345.  
  1346. Braden, Clark & Shenker                                        [Page 24]
  1347.  
  1348. RFC 1633            Integrated Services Architecture           June 1994
  1349.  
  1350.  
  1351.       very powerful.  In particular, while priority has been proposed as
  1352.       a key to real-time services, WFQ may be the more general and
  1353.       powerful of the two schemes.  It, rather than priority, supports
  1354.       guaranteed service and link sharing.
  1355.  
  1356. 5. Reservation Setup Protocol
  1357.  
  1358.    There are a number of requirements to be met by the design of a
  1359.    reservation setuop protocol.  It should be fundamentally designed for
  1360.    a multicast environment, and it must accommodate heterogeneous
  1361.    service needs.  It must give flexible control over the manner in
  1362.    which reservations can be shared along branches of the multicast
  1363.    delivery trees.  It should be designed around the elementary action
  1364.    of adding one sender and/or receiver to an existing set, or deleting
  1365.    one.  It must be robust and scale well to large multicast groups.
  1366.    Finally, it must provide for advance reservation of resources, and
  1367.    for the preemption that this implies.  The reservation setup protocol
  1368.    RSVP has been designed to meet these requirements [RSVP93a, RSVP93b].
  1369.    This section gives an overview of the design of RSVP.
  1370.  
  1371.    5.1 RSVP Overview
  1372.  
  1373.       Figure  shows multi-source, multi-destination data delivery for a
  1374.       particular shared, distributed application.  The arrows indicate
  1375.       data flow from senders S1 and S2 to receivers R1, R2, and R3, and
  1376.       the cloud represents the distribution mesh created by the
  1377.       multicast routing protocol.  Multicasting distribution replicates
  1378.       each data packet from a sender Si, for delivery to every receiver
  1379.       Rj.  We treat uncast delivery from S1 to R1 as a special case, and
  1380.       we call this multicast distribution mesh a session.  A session is
  1381.       defined by the common IP (multicast) destination address of the
  1382.       receiver(s).
  1383.  
  1384.  
  1385.                  Senders                              Receivers
  1386.                              _____________________
  1387.                             (                     ) ===> R1
  1388.                     S1 ===> (    Multicast        )
  1389.                             (                     ) ===> R2
  1390.                             (    distribution     )
  1391.                     S2 ===> (                     )
  1392.                             (                     ) ===> R3
  1393.                             (_____________________)
  1394.  
  1395.                    Figure 2: Multicast Distribution Session
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Braden, Clark & Shenker                                        [Page 25]
  1403.  
  1404. RFC 1633            Integrated Services Architecture           June 1994
  1405.  
  1406.  
  1407.       5.1.1 Flowspecs and Filter Specs
  1408.  
  1409.          In general, an RSVP reservation request specifies the amount of
  1410.          resources to be reserved for all, or some subset of, the
  1411.          packets in a particular session.  The resource quantity is
  1412.          specified by a flowspec, while the packet subset to receive
  1413.          those resources is specified by a filter spec.  Assuming
  1414.          admission control succeeds, the flowspec will be used to
  1415.          parametrize a resource class in the packet scheduler, and the
  1416.          filter spec will be instantiated in the packet classifier to
  1417.          map the appropriate packets into this class.  The subset of the
  1418.          classifier state that selects a particular class is referred to
  1419.          in RSVP documentation as a (packet) "filter".
  1420.  
  1421.          The RSVP protocol mechanisms provide a very general facility
  1422.          for creating and maintaining distributed reservation state
  1423.          across the mesh of multicast delivery paths.  These mechanisms
  1424.          treat flowspecs and filter specs as mostly opaque binary data,
  1425.          handing them to the local traffic control machinery for
  1426.          interpretation.  Of course, the service model presented to an
  1427.          application must specify how to encode flowspecs and filter
  1428.          specs.
  1429.  
  1430.       5.1.2 Reservation Styles
  1431.  
  1432.          RSVP offers several different reservation "styles", which
  1433.          determine the manner in which the resource requirements of
  1434.          multiple receivers are aggregated in the routers.  These styles
  1435.          allow the reserved resources to more efficiently meet
  1436.          application requirements.  Currently there are three
  1437.          reservation styles, "wildcard", "fixed-filter", and " dynamic-
  1438.          filter".  A wildcard reservation uses a filter spec that is not
  1439.          source-specific, so all packets destined for the associated
  1440.          destination (session) may use a common pool of reserved
  1441.          resources.  This allows a single resource allocation to be made
  1442.          across all distribution paths for the group.  The wildcard
  1443.          reservation style is useful in support of an audio conference,
  1444.          where at most a small number of sources are active
  1445.          simultaneously and may share the resource allocation.
  1446.  
  1447.          The other two styles use filter specs that select particular
  1448.          sources.  A receiver may desire to receive from a fixed set of
  1449.          sources, or instead it may desire the network to switch between
  1450.          different source, by changing its filter spec(s) dymamically.
  1451.          A fixed-filter style reservation cannot be changed during its
  1452.          lifetime without re-invoking admission control.  Dynamic-filter
  1453.          reservations do allow a receiver to modify its choice of
  1454.          source(s) over time without additional admission control;
  1455.  
  1456.  
  1457.  
  1458. Braden, Clark & Shenker                                        [Page 26]
  1459.  
  1460. RFC 1633            Integrated Services Architecture           June 1994
  1461.  
  1462.  
  1463.          however, this requires that sufficient resources be allocated
  1464.          to handle the worst case when all downstream receivers take
  1465.          input from different sources.
  1466.  
  1467.       5.1.3 Receiver Initiation
  1468.  
  1469.          An important design question is whether senders or receivers
  1470.          should have responsibility for initiating reservations.  A
  1471.          sender knows the qualities of the traffic stream it can send,
  1472.          while a receiver knows what it wants to (or can) receive.
  1473.          Perhaps the most obvious choice is to let the sender initiate
  1474.          the reservation.  However, this scales poorly for large,
  1475.          dynamic multicast delivery trees and for heterogeneous
  1476.          receivers.
  1477.  
  1478.          Both of these scaling problems are solved by making the
  1479.          receiver responsible for initiating a reservation.  Receiver
  1480.          initiation  handles heterogeneous receivers easily; each
  1481.          receiver simply asks for a reservation appropriate to itself,
  1482.          and any differences among reservations from different receivers
  1483.          are resolved ("merged") within the network by RSVP.  Receiver
  1484.          initiation is also consisent with IP multicast, in which a
  1485.          multicast group is created implicitly by receivers joining it.
  1486.  
  1487.          Although receiver-initiated reservation is the natural choice
  1488.          for multicast sessions, the justification for receiver
  1489.          initiateion may appear weaker for unicast sessions, where the
  1490.          sender may be the logical session initiator.  However, we
  1491.          expect that every realtime application will have its higher-
  1492.          level signalling and control protocol, and this protocol can be
  1493.          used to signal the receiver to initiate a reservation (and
  1494.          perhaps indicate the flowspec to be used).  For simplicity and
  1495.          economy, a setup protocol should support only one direction of
  1496.          initiation, and, and receiver initiation appears to us to be
  1497.          the clear winner.
  1498.  
  1499.          RSVP uses receiver-initiation of rservations [RSVP93b].  A
  1500.          receiver is assumed to learn the senders' offered flowspecs by
  1501.          a higher-level mechanism ("out of band"), it then generates its
  1502.          own desired flowspec and propagates it towards the senders,
  1503.          making reservations in each router along the way.
  1504.  
  1505.       5.1.4 Soft State
  1506.  
  1507.          There are two different possible styles for reservation setup
  1508.          protocols, the "hard state" (HS) approach (also called
  1509.          "connection-oriented"), and the "soft state" (SS) approach
  1510.          (also called "connectionless").  In both approaches, multicast
  1511.  
  1512.  
  1513.  
  1514. Braden, Clark & Shenker                                        [Page 27]
  1515.  
  1516. RFC 1633            Integrated Services Architecture           June 1994
  1517.  
  1518.  
  1519.          distribution is performed using flow-specific state in each
  1520.          router along the path.  Under the HS approach, this state is
  1521.          created and deleted in a fully deterministic manner by
  1522.          cooperation among the routers.  Once a host requests a session,
  1523.          the "network" takes responsibility for creating and later
  1524.          destroying the necessary state.  ST-II is an example of the HS
  1525.          approach [ST2-90].  Since management of HS session state is
  1526.          completely deterministic, the HS setup protocol must be
  1527.          reliable, with acknowledgments and retransmissions.  In order
  1528.          to achieve deterministic cleanup of state after a failure,
  1529.          there must be some mechanism to detect failures, i.e., an
  1530.          "up/down" protocol.  The router upstream (towards the source)
  1531.          from a failure takes responsibility for rebuilding the
  1532.          necessary state on the router(s) along an alternate route.
  1533.  
  1534.          RSVP takes the SS approach, which regards the reservation state
  1535.          as cached information that is installed and periodically
  1536.          refreshed by the end hosts.  Unused state is timed out by the
  1537.          routers.  If the route changes, the refresh messages
  1538.          automatically install the necessary state along the new route.
  1539.          The SS approach was chosen to obtain the simplicity and
  1540.          robustness that have been demonstrated by connectionless
  1541.          protocols such as IP [Clark88].
  1542.  
  1543.    5.2 Routing and Reservations
  1544.  
  1545.       There is a fundamental interaction between resource reservation
  1546.       set up and routing, since reservation requires the installation of
  1547.       flow state along the route of data packets.  If and when a route
  1548.       changes, there must be some mechanism to set up a reservation
  1549.       along the new route.
  1550.  
  1551.       Some have suggested that reservation setup necessarily requires
  1552.       route set up, i.e., the imposition of a virtual-circuit internet
  1553.       layer.  However, our goal is to simply extend the Internet
  1554.       architecture, not replace it.  The fundamental connectionless
  1555.       internet layer [Clark88] has been highly successful, and we wish
  1556.       to retain it as an architectural foundation.  We propose instead
  1557.       to modify somewhat the pure datagram forwarding mechanism of the
  1558.       present Internet to accomodate "IS".
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570. Braden, Clark & Shenker                                        [Page 28]
  1571.  
  1572. RFC 1633            Integrated Services Architecture           June 1994
  1573.  
  1574.  
  1575.       There are four routing issues faced by a reservation setup
  1576.       protocol such as RSVP.
  1577.  
  1578.       1.   Find a route that supports resource reservation.
  1579.  
  1580.            This is simply "type-of-service" routing, a facility that is
  1581.            already available in some modern routing protocols.
  1582.  
  1583.       2.   Find a route that has sufficient unreserved capacity for a
  1584.            new flow.
  1585.  
  1586.            Early experiments on the ARPANET showed that it is difficult
  1587.            to do load-dependent dynamic routing on a packet-by-packet
  1588.            basis without instability problems.  However, instability
  1589.            should not be a problem if load-dependent routing is
  1590.            performed only at reservation setup time.
  1591.  
  1592.            Two different approaches might be taken to finding a route
  1593.            with enough capacity.  One could modify the routing
  1594.            protocol(s) and interface them to the traffic control
  1595.            mechanism, so the route computation can consider the average
  1596.            recent load.  Alternatively, the routing protocol could be
  1597.            (re-)designed to provide multiple alternative routes, and
  1598.            reservation setup could be attempted along each in turn.
  1599.  
  1600.       3.   Adapt to a route failure
  1601.  
  1602.            When some node or link fails, adaptive routing finds an
  1603.            alternate path.  The periodic refresh messages of RSVP will
  1604.            automatically request a reservation along the new path.  Of
  1605.            course, this reservation may fail because there is
  1606.            insufficienct available capacity on the new path.  This is a
  1607.            problem of provisioning and network engineering, which cannot
  1608.            be solved by the routing or setup protocols.
  1609.  
  1610.            There is a problem of timeliness of establishing reservation
  1611.            state on the new path.  The end-to-end robustness mechanism
  1612.            of refreshes is limited in frequency by overhead, which may
  1613.            cause a gap in realtime service when an old route breaks and
  1614.            a new one is chosen.  It should be possible to engineer RSVP
  1615.            to sypplement the global refresh mechanism with a local
  1616.            repair mechanism, using hints about route changes from the
  1617.            routing mechanism.
  1618.  
  1619.       4.   Adapt to a route change (without failure)
  1620.  
  1621.            Route changes may occur even without failure in the affected
  1622.            path.  Although RSVP could use the same repair techniques as
  1623.  
  1624.  
  1625.  
  1626. Braden, Clark & Shenker                                        [Page 29]
  1627.  
  1628. RFC 1633            Integrated Services Architecture           June 1994
  1629.  
  1630.  
  1631.            those described in (3), this case raises a problem with the
  1632.            robustness of the QoS guarantees.  If it should happen that
  1633.            admission control fails on the new route, the user will see
  1634.            service degradation unnecessarily and capriciously, since the
  1635.            orginal route is still functional.
  1636.  
  1637.            To avoid this problem, a mechanism called "route pinning" has
  1638.            been suggested.  This would modify the routing protocol
  1639.            implementation and the interface to the classifier, so that
  1640.            routes associated with resource reservations would be
  1641.            "pinned".  The routing prootocol would not change a pinned
  1642.            route if it was still viable.
  1643.  
  1644.       It may eventually be possible to fold together the routing and
  1645.       reservation setup problems, but we do not yet understand enough to
  1646.       do that.  Furthermore, the reservation protocol needs to coexist
  1647.       with a number of different routing protocols in use in the
  1648.       Internet.  Therefore, RSVP is currently designed to work with any
  1649.       current-generation routing protocol without modification.  This is
  1650.       a short-term compromise, which may result in an occasional failure
  1651.       to create the best, or even any, real-time session, or an
  1652.       occasional service degradation due to a route change.  We expect
  1653.       that future generations of routing protocols will remove this
  1654.       compromise, by including hooks and mechanisms that, in conjunction
  1655.       with RSVP, will solve the problems (1) through (4) just listed.
  1656.       They will support route pinning, notification of RSVP to trigger
  1657.       local repair, and selection of routes with "IS" support and
  1658.       adequate capacity.
  1659.  
  1660.       The last routing-related issue is provided by mobile hosts.  Our
  1661.       conjecture is that mobility is not essentially different from
  1662.       other route changes, so that the mechanism suggested in (3) and
  1663.       (4) will suffice.  More study and experimentation is needed to
  1664.       prove or disprove this conjecture.
  1665.  
  1666. 6. ACKNOWLEDGMENTS
  1667.  
  1668.    Many Internet researchers have contributed to the work described in
  1669.    this memo.  We want to especially acknowledge, Steve Casner, Steve
  1670.    Deering, Deborah Estrin, Sally Floyd, Shai Herzog, Van Jacobson,
  1671.    Sugih Jamin, Craig Partridge, John Wroclawski, and Lixia Zhang.  This
  1672.    approach to Internet integrated services was initially discussed and
  1673.    organized in the End-to-End Research Group of the Internet Research
  1674.    Taskforce, and we are grateful to all members of that group for their
  1675.    interesting (and sometimes heated) discussions.
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682. Braden, Clark & Shenker                                        [Page 30]
  1683.  
  1684. RFC 1633            Integrated Services Architecture           June 1994
  1685.  
  1686.  
  1687. REFERENCES
  1688.  
  1689. [CerfKahn74]  Cerf, V., and R. Kahn, "A Protocol for Packet Network
  1690.     Intercommunication", IEEE Trans on Comm., Vol. Com-22, No. 5, May
  1691.     1974.
  1692.  
  1693. [Clark88]  Clark, D., "The Design Philosophy of the DARPA Internet
  1694.     Protocols", ACM SIGCOMM '88, August 1988.
  1695.  
  1696. [CSZ92]  Clark, D., Shenker, S., and L. Zhang, "Supporting Real-Time
  1697.     Applications in an Integrated Services Packet Network: Architecture
  1698.     and Mechanisms", Proc. SIGCOMM '92, Baltimore, MD, August 1992.
  1699.  
  1700. [DKS89]  Demers, A., Keshav, S., and S. Shenker.  "Analysis and
  1701.     Simulation of a Fair Queueing Algorithm", Journal of
  1702.     Internetworking: Research and Experience, 1, pp. 3-26, 1990.  Also
  1703.     in Proc. ACM SIGCOMM '89, pp 3-12.
  1704.  
  1705. [SCZ93a]  Shenker, S., Clark, D., and L. Zhang, "A Scheduling Service
  1706.     Model and a Scheduling Architecture for an Integrated Services
  1707.     Packet Network", submitted to ACM/IEEE Trans. on Networking.
  1708.  
  1709. [SCZ93b]  Shenker, S., Clark, D., and L. Zhang, "A Service Model for the
  1710.     Integrated Services Internet", Work in Progress, October 1993.
  1711.  
  1712. [Floyd92]  Floyd, S., "Issues in Flexible Resource Management for
  1713.     Datagram Networks", Proceedings of the 3rd Workshop on Very High
  1714.     Speed Networks, March 1992.
  1715.  
  1716. [Jacobson91]  Jacobson, V., "Private Communication", 1991.
  1717.  
  1718. [JCSZ92]  Jamin, S., Shenker, S., Zhang, L., and D. Clark, "An Admission
  1719.     Control Algorithm for Predictive Real-Time Service", Extended
  1720.     abstract, in Proc. Third International Workshop on Network and
  1721.     Operating System Support for Digital Audio and Video, San Diego, CA,
  1722.     Nov. 1992, pp.  73-91.
  1723.  
  1724. [Parekh92]  Parekh, A., "A Generalized Processor Sharing Approach to
  1725.     Flow Control in Integrated Services Networks", Technical Report
  1726.     LIDS-TR-2089, Laboratory for Information and Decision Systems,
  1727.     Massachusetts Institute of Technology, 1992.
  1728.  
  1729. [Partridge92]  Partridge, C., "A Proposed Flow Specification", RFC 1363,
  1730.     BBN, July 1992.
  1731.  
  1732. [RSVP93a]  Zhang, L., Deering, S., Estrin, D., Shenker, S., and D.
  1733.     Zappala, "RSVP: A New Resource ReSerVation Protocol", Accepted for
  1734.     publication in IEEE Network, 1993.
  1735.  
  1736.  
  1737.  
  1738. Braden, Clark & Shenker                                        [Page 31]
  1739.  
  1740. RFC 1633            Integrated Services Architecture           June 1994
  1741.  
  1742.  
  1743. [RSVP93b]  Zhang, L., Braden, R., Estrin, D., Herzog, S., and S. Jamin,
  1744.     "Resource ReSerVation Protocol (RSVP) - Version 1 Functional
  1745.     Specification", Work in Progress, 1993.
  1746.  
  1747. [ST2-90]  Topolcic, C., "Experimental Internet Stream Protocol: Version
  1748.     2 (ST-II)", RFC 1190, BBN, October 1990.
  1749.  
  1750. [Tenet90]  Ferrari, D., and D. Verma, "A Scheme for Real-Time Channel
  1751.     Establishment in Wide-Area Networks", IEEE JSAC, Vol. 8, No. 3, pp
  1752.     368-379, April 1990.
  1753.  
  1754. Security Considerations
  1755.  
  1756.    As noted in Section 2.1, the ability to reserve resources will create
  1757.    a requirement for authentication, both of users requesting resource
  1758.    guarantees and of packets that claim to have the right to use those
  1759.    guarantees.  These authentication issues are not otherwise addressed
  1760.    in this memo, but are for further study.
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794. Braden, Clark & Shenker                                        [Page 32]
  1795.  
  1796. RFC 1633            Integrated Services Architecture           June 1994
  1797.  
  1798.  
  1799. Authors' Addresses
  1800.  
  1801.    Bob Braden
  1802.    USC Information Sciences Institute
  1803.    4676 Admiralty Way
  1804.    Marina del Rey, CA 90292
  1805.  
  1806.    Phone: (310) 822-1511
  1807.    EMail: Braden@ISI.EDU
  1808.  
  1809.  
  1810.    David Clark
  1811.    MIT Laboratory for Computer Science
  1812.    545 Technology Square
  1813.    Cambridge, MA 02139-1986
  1814.  
  1815.    Phone: (617) 253-6003
  1816.    EMail: ddc@LCS.MIT.EDU
  1817.  
  1818.  
  1819.    Scott Shenker
  1820.    Xerox Palo Alto Research Center
  1821.    3333 Coyote Hill Road
  1822.    Palo Alto, CA 94304
  1823.  
  1824.    Phone: (415) 812-4840
  1825.    EMail: Shenker@PARC.XEROX.COM
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850. Braden, Clark & Shenker                                        [Page 33]
  1851.  
  1852.